home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.javadoc;
-
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.PrintStream;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
- import java.util.Vector;
- import sun.tools.java.ClassDeclaration;
- import sun.tools.java.ClassDefinition;
- import sun.tools.java.ClassNotFound;
- import sun.tools.java.Constants;
- import sun.tools.java.FieldDefinition;
- import sun.tools.java.Identifier;
- import sun.tools.java.Type;
- import sun.tools.javac.BatchEnvironment;
- import sun.tools.javac.SourceClass;
-
- abstract class DocumentationGenerator implements Constants {
- BatchEnvironment env;
- private static final Identifier idIOException = Identifier.lookup("java.io.IOException");
- static ClassDeclaration exDecl;
- static ClassDeclaration errorDecl;
-
- public DocumentationGenerator init() {
- this.env = Main.env;
- return this;
- }
-
- static boolean shouldDocument(ClassDefinition var0) {
- return var0.isPublic();
- }
-
- static boolean shouldDocument(FieldDefinition var0) {
- return var0.isPublic() || var0.isProtected();
- }
-
- static Vector allVariables(ClassDefinition var0) {
- Vector var1 = new Vector();
-
- for(FieldDefinition var2 = var0.getFirstField(); var2 != null; var2 = var2.getNextField()) {
- if (var2.isVariable() && shouldDocument(var2)) {
- var1.addElement(var2);
- }
- }
-
- return var1;
- }
-
- static Vector allConstructors(ClassDefinition var0) {
- Vector var1 = new Vector();
-
- for(FieldDefinition var2 = var0.getFirstField(); var2 != null; var2 = var2.getNextField()) {
- if (var2.isConstructor() && shouldDocument(var2)) {
- var1.addElement(var2);
- }
- }
-
- return var1;
- }
-
- static Vector allMethods(ClassDefinition var0) {
- Vector var1 = new Vector();
-
- for(FieldDefinition var2 = var0.getFirstField(); var2 != null; var2 = var2.getNextField()) {
- if (var2.isMethod() && !var2.isConstructor() && shouldDocument(var2)) {
- var1.addElement(var2);
- }
- }
-
- return var1;
- }
-
- static Vector localFieldsOf(ClassDefinition var0, Vector var1) {
- Vector var2 = new Vector();
- Enumeration var3 = var1.elements();
-
- while(var3.hasMoreElements()) {
- FieldDefinition var4 = (FieldDefinition)var3.nextElement();
- if (var4.getClassDefinition().equals(var0) && var4.getClassDeclaration() == var4.getDefiningClassDeclaration()) {
- var2.addElement(var4);
- }
- }
-
- return var2;
- }
-
- Vector superclassesOf(ClassDeclaration var1) {
- if (var1 == null) {
- return new Vector();
- } else {
- try {
- ClassDeclaration var2 = var1.getClassDefinition(this.env).getSuperClass();
- Vector var3 = this.superclassesOf(var2);
- var3.addElement(var1);
- return var3;
- } catch (ClassNotFound var4) {
- System.err.println("Warning: Couldn't find superclass info for " + var1.getName());
- return new Vector();
- }
- }
- }
-
- static Vector mergeDoc(String var0) {
- Vector var1 = new Vector();
- StringTokenizer var2 = new StringTokenizer(var0, "\n");
-
- while(var2.hasMoreTokens()) {
- String var3 = var2.nextToken();
- if (var3.trim().length() != 0) {
- if (var3.charAt(0) == '@') {
- var1.addElement(var3);
- } else if (var1.size() == 0) {
- var1.addElement("@comment " + var3);
- } else {
- int var4 = var1.size() - 1;
- var1.setElementAt(var1.elementAt(var4) + "\n" + var3, var4);
- }
- }
- }
-
- return var1;
- }
-
- abstract String commentString(String var1);
-
- abstract String returnString(String var1);
-
- abstract String versionString(String var1);
-
- abstract String authorString(String var1);
-
- String getComment(Vector var1) {
- Enumeration var2 = var1.elements();
-
- while(var2.hasMoreElements()) {
- String var3 = (String)var2.nextElement();
- if (var3.startsWith("@comment")) {
- return this.commentString(var3.substring(8).trim());
- }
- }
-
- return null;
- }
-
- String getReturn(Vector var1) {
- String var2 = null;
- Enumeration var3 = var1.elements();
-
- while(var3.hasMoreElements()) {
- String var4 = (String)var3.nextElement();
- if (var4.startsWith("@return")) {
- var4 = var4.substring(7).trim();
- if (var4.length() == 0) {
- System.out.println("warning: empty @return statement.");
- } else if (var2 == null) {
- var2 = this.returnString(var4);
- } else {
- System.out.println("warning: multiple @return statements.");
- }
- }
- }
-
- return var2;
- }
-
- String getVersion(Vector var1) {
- if (!Main.showVersion) {
- return null;
- } else {
- String var2 = null;
- Enumeration var3 = var1.elements();
-
- while(var3.hasMoreElements()) {
- String var4 = (String)var3.nextElement();
- if (var4.startsWith("@version")) {
- var4 = var4.substring(8).trim();
- if (var4.length() == 0) {
- System.out.println("warning: empty @version statement.");
- } else if (var2 == null) {
- var2 = this.versionString(var4);
- } else {
- System.out.println("warning: multiple @version statements.");
- }
- }
- }
-
- return var2;
- }
- }
-
- Vector getSees(Vector var1, ClassDeclaration var2) {
- Vector var3 = null;
- Enumeration var4 = var1.elements();
-
- while(var4.hasMoreElements()) {
- String var5 = (String)var4.nextElement();
- if (var5.startsWith("@see")) {
- var5 = var5.substring(4).trim();
- if (var5.length() == 0) {
- System.out.println("warning: empty @see statement.");
- } else {
- if (var3 == null) {
- var3 = new Vector();
- }
-
- this.parseSeeString(var5, var2, var3);
- }
- }
- }
-
- return var3;
- }
-
- String getAuthors(Vector var1) {
- if (!Main.showAuthors) {
- return null;
- } else {
- String var2 = null;
- Enumeration var3 = var1.elements();
-
- while(var3.hasMoreElements()) {
- String var4 = (String)var3.nextElement();
- if (var4.startsWith("@author")) {
- var4 = var4.substring(7).trim();
- if (var4.length() == 0) {
- System.out.println("warning: empty @author statement.");
- } else if (var2 == null) {
- var2 = this.authorString(var4);
- } else {
- var2 = var2 + ", " + this.authorString(var4);
- }
- }
- }
-
- return var2;
- }
- }
-
- static Vector getParameters(Vector var0) {
- Vector var1 = null;
- Enumeration var2 = var0.elements();
-
- while(var2.hasMoreElements()) {
- String var3 = (String)var2.nextElement();
- if (var3.startsWith("@param")) {
- int var4 = 0;
-
- for(var3 = var3.substring(6).trim(); var4 < var3.length() && var3.charAt(var4) != ' ' && var3.charAt(var4) != '\t'; ++var4) {
- }
-
- if (var4 < var3.length()) {
- if (var1 == null) {
- var1 = new Vector();
- }
-
- var1.addElement(var3.substring(0, var4));
- var1.addElement(var3.substring(var4).trim());
- } else {
- System.out.println("warning: empty @param statement.");
- }
- }
- }
-
- return var1;
- }
-
- Vector getThrows(Vector var1, FieldDefinition var2) {
- Vector var3 = new Vector();
- Enumeration var4 = var1.elements();
-
- while(var4.hasMoreElements()) {
- String var5 = (String)var4.nextElement();
- if (var5.startsWith("@exception")) {
- int var6 = 0;
-
- for(var5 = var5.substring(10).trim(); var6 < var5.length() && var5.charAt(var6) != ' ' && var5.charAt(var6) != '\t'; ++var6) {
- }
-
- if (var6 >= var5.length()) {
- System.out.println("warning: empty @exception statement.");
- } else {
- Identifier var7 = Identifier.lookup(var5.substring(0, var6));
-
- ClassDeclaration var8;
- try {
- var8 = this.env.getClassDeclaration(((SourceClass)var2.getClassDefinition()).getImports().resolve(this.env, var7));
- } catch (ClassNotFound var14) {
- var8 = this.env.getClassDeclaration(var7);
- }
-
- var3.addElement(var8);
- var3.addElement(var5.substring(var6).trim());
- }
- }
- }
-
- ClassDeclaration var18 = this.env.getClassDeclaration(Constants.idJavaLangError);
- ClassDeclaration var19 = this.env.getClassDeclaration(Constants.idJavaLangRuntimeException);
- ClassDeclaration var20 = this.env.getClassDeclaration(idIOException);
- ClassDeclaration[] var21 = var2.getExceptions(this.env);
-
- label98:
- for(int var9 = 0; var9 < var21.length; ++var9) {
- ClassDeclaration var10 = var21[var9];
-
- try {
- ClassDefinition var11 = var10.getClassDefinition(this.env);
- if (!var11.subClassOf(this.env, var18) && !var11.subClassOf(this.env, var19) && !var11.subClassOf(this.env, var20)) {
- for(int var12 = 0; var12 < var3.size(); var12 += 2) {
- if (var11.subClassOf(this.env, (ClassDeclaration)var3.elementAt(var12))) {
- continue label98;
- }
- }
-
- System.out.println("Method " + var2 + " declares that it throws " + var11 + " but there is no documentation");
- }
- } catch (ClassNotFound var16) {
- System.out.println("Couldn't find " + var16.name);
- }
- }
-
- label79:
- for(int var22 = 0; var22 < var3.size(); var22 += 2) {
- ClassDeclaration var23 = (ClassDeclaration)var3.elementAt(var22);
-
- try {
- ClassDefinition var24 = var23.getClassDefinition(this.env);
- if (!var24.subClassOf(this.env, var18) && !var24.subClassOf(this.env, var19) && !var24.subClassOf(this.env, var20)) {
- for(int var13 = 0; var13 < var21.length; ++var13) {
- if (var24.subClassOf(this.env, var21[var13])) {
- continue label79;
- }
- }
-
- System.out.println("Method " + var2 + " documents that it throws " + var23 + " but there is no declaration");
- }
- } catch (ClassNotFound var15) {
- System.out.println("Couldn't find " + var15.name);
- }
- }
-
- if (var3.size() == 0) {
- return null;
- } else {
- return var3;
- }
- }
-
- FieldDefinition getOverride(FieldDefinition var1) {
- FieldDefinition var2 = null;
-
- try {
- if (!var1.isStatic() && !var1.isConstructor() && var1.getClassDefinition().getSuperClass() != null) {
- var2 = var1.getClassDefinition().getSuperClass().getClassDefinition(this.env).findMethod(this.env, var1.getName(), var1.getType());
- }
- } catch (ClassNotFound var3) {
- var2 = null;
- }
-
- return var2;
- }
-
- boolean isException(ClassDeclaration var1) {
- if (exDecl == null) {
- Identifier var2 = Identifier.lookup("java.lang.Exception");
- exDecl = this.env.getClassDeclaration(var2);
- }
-
- try {
- return var1.getClassDefinition(this.env).subClassOf(this.env, exDecl);
- } catch (ClassNotFound var3) {
- System.err.println("Warning: Couldn't find class info for " + exDecl.getName());
- return false;
- }
- }
-
- boolean isError(ClassDeclaration var1) {
- if (errorDecl == null) {
- Identifier var2 = Identifier.lookup("java.lang.Error");
- errorDecl = this.env.getClassDeclaration(var2);
- }
-
- try {
- return var1.getClassDefinition(this.env).subClassOf(this.env, errorDecl);
- } catch (ClassNotFound var3) {
- System.err.println("Warning: Couldn't find class info for " + errorDecl.getName());
- return false;
- }
- }
-
- static PrintStream openFile(String var0) {
- if (Main.destDir != null) {
- var0 = Main.destDir.getPath() + File.separator + var0;
- }
-
- FileOutputStream var1;
- try {
- var1 = new FileOutputStream(var0);
- } catch (IOException var3) {
- try {
- (new File((new File(var0)).getParent())).mkdirs();
- var1 = new FileOutputStream(var0);
- } catch (IOException var2) {
- throw new Error("Can't open output file");
- }
- }
-
- return new PrintStream(new BufferedOutputStream(var1));
- }
-
- String firstSentence(ClassDefinition var1) {
- return this.firstSentence(var1.getDocumentation());
- }
-
- String firstSentence(FieldDefinition var1) {
- return this.firstSentence(this.getDocumentation(var1));
- }
-
- private String firstSentence(String var1) {
- if (var1 == null) {
- return "";
- } else {
- int var2 = var1.length();
- boolean var3 = false;
-
- for(int var4 = 0; var4 < var2; ++var4) {
- switch (var1.charAt(var4)) {
- case '\t':
- case '\n':
- case ' ':
- if (var3) {
- return var1.substring(0, var4);
- }
- break;
- case '.':
- var3 = true;
- break;
- case '@':
- return var1.substring(0, var4);
- default:
- var3 = false;
- }
- }
-
- return var1;
- }
- }
-
- String getDocumentation(FieldDefinition var1) {
- String var2 = var1.getDocumentation();
- if (var2 == null && !var1.isVariable() && !var1.isConstructor()) {
- while(var1 != null && var2 == null) {
- ClassDeclaration var3 = var1.getClassDefinition().getSuperClass();
- if (var3 == null) {
- break;
- }
-
- try {
- var1 = var3.getClassDefinition(this.env).findMethod(this.env, var1.getName(), var1.getType());
- } catch (ClassNotFound var4) {
- System.err.println("Warning: Couldn't find class info for " + var3.getName());
- var1 = null;
- }
-
- if (var1 != null) {
- var2 = var1.getDocumentation();
- }
- }
-
- return var2 != null ? this.firstSentence(var2) : null;
- } else {
- return var2;
- }
- }
-
- String typeString(Type var1) {
- switch (var1.getTypeCode()) {
- case 0:
- return "boolean";
- case 1:
- return "byte";
- case 2:
- return "char";
- case 3:
- return "short";
- case 4:
- return "int";
- case 5:
- return "long";
- case 6:
- return "float";
- case 7:
- return "double";
- case 8:
- default:
- return "error";
- case 9:
- return this.typeString(var1.getElementType());
- case 10:
- return this.classString(this.env.getClassDeclaration(var1));
- case 11:
- return "void";
- }
- }
-
- String typeArrayString(Type var1) {
- String var2;
- for(var2 = ""; var1.getTypeCode() == 9; var1 = var1.getElementType()) {
- var2 = var2 + "[]";
- }
-
- return var2;
- }
-
- static String modString(FieldDefinition var0) {
- String var1;
- if (var0.isPublic()) {
- var1 = " public";
- } else if (var0.isProtected()) {
- var1 = " protected";
- } else if (var0.isPrivate()) {
- var1 = " private";
- } else {
- var1 = "";
- }
-
- if (var0.isFinal()) {
- var1 = var1 + (var1.length() > 0 ? " final" : "final");
- }
-
- if (var0.isStatic()) {
- var1 = var1 + (var1.length() > 0 ? " static" : "static");
- }
-
- if (var0.isSynchronized()) {
- var1 = var1 + (var1.length() > 0 ? " synchronized" : "synchronized");
- }
-
- if (var0.isAbstract()) {
- var1 = var1 + (var1.length() > 0 ? " abstract" : "abstract");
- }
-
- if (var0.isVolatile()) {
- var1 = var1 + (var1.length() > 0 ? " volatile" : "volatile");
- }
-
- if (var0.isTransient()) {
- var1 = var1 + (var1.length() > 0 ? " transient" : "transient");
- }
-
- return var1;
- }
-
- private static int compare(ClassDeclaration var0, ClassDeclaration var1) {
- Identifier var2 = var0.getName();
- Identifier var3 = var1.getName();
- int var4 = var2.getName().toString().compareTo(var3.getName().toString());
- return var4 == 0 ? var2.getQualifier().toString().compareTo(var3.getQualifier().toString()) : var4;
- }
-
- static void sort(ClassDeclaration[] var0) {
- boolean var1;
- do {
- var1 = true;
-
- for(int var2 = var0.length - 1; var2 > 0; --var2) {
- if (compare(var0[var2 - 1], var0[var2]) > 0) {
- ClassDeclaration var3 = var0[var2];
- var0[var2] = var0[var2 - 1];
- var0[var2 - 1] = var3;
- var1 = false;
- }
- }
- } while(!var1);
-
- }
-
- void genPackagesDocumentation(Vector var1) {
- Vector var2 = new Vector();
- Vector var3 = new Vector();
- Enumeration var4 = var1.elements();
-
- while(var4.hasMoreElements()) {
- String var5 = (String)var4.nextElement();
- (var5.startsWith("java.") ? var2 : var3).addElement(var5);
- }
-
- String[] var7 = null;
- String[] var6 = null;
- if (var2.size() > 0) {
- var7 = new String[var2.size()];
- var2.copyInto(var7);
- sort(var7);
- }
-
- if (var3.size() > 0) {
- var6 = new String[var3.size()];
- var3.copyInto(var6);
- sort(var6);
- }
-
- this.genPackagesDocumentation(var7, var6);
- }
-
- abstract void genPackagesDocumentation(String[] var1, String[] var2);
-
- void genPackageDocumentation(Identifier var1) {
- int var2 = 0;
- int var3 = 0;
- int var4 = 0;
- int var5 = 0;
-
- boolean var6;
- do {
- var6 = false;
- Enumeration var7 = this.env.getClasses();
-
- while(var7.hasMoreElements()) {
- ClassDeclaration var8 = (ClassDeclaration)var7.nextElement();
- if (!var8.isDefined()) {
- try {
- var8.getClassDefinition(this.env);
- var6 = true;
- } catch (ClassNotFound var15) {
- }
- }
- }
- } while(var6);
-
- Enumeration var16 = this.env.getClasses();
-
- while(var16.hasMoreElements()) {
- ClassDeclaration var17 = (ClassDeclaration)var16.nextElement();
-
- try {
- ClassDefinition var19 = var17.getClassDefinition(this.env);
- if (shouldDocument(var19) && var17.getName().getQualifier().equals(var1)) {
- if (var17.getClassDefinition(this.env).isInterface()) {
- ++var2;
- } else if (this.isException(var17)) {
- ++var4;
- } else if (this.isError(var17)) {
- ++var5;
- } else {
- ++var3;
- }
- }
- } catch (ClassNotFound var14) {
- }
- }
-
- ClassDeclaration[] var18 = new ClassDeclaration[var2];
- ClassDeclaration[] var20 = new ClassDeclaration[var3];
- ClassDeclaration[] var9 = new ClassDeclaration[var4];
- ClassDeclaration[] var10 = new ClassDeclaration[var5];
- Enumeration var11 = this.env.getClasses();
-
- while(var11.hasMoreElements()) {
- ClassDeclaration var12 = (ClassDeclaration)var11.nextElement();
-
- try {
- if (shouldDocument(var12.getClassDefinition(this.env)) && var12.getName().getQualifier().equals(var1)) {
- if (var12.getClassDefinition(this.env).isInterface()) {
- --var2;
- var18[var2] = var12;
- } else if (this.isException(var12)) {
- --var4;
- var9[var4] = var12;
- } else if (this.isError(var12)) {
- --var5;
- var10[var5] = var12;
- } else {
- --var3;
- var20[var3] = var12;
- }
- }
- } catch (ClassNotFound var13) {
- }
- }
-
- this.genPackageDocumentation(var1, var18, var20, var9, var10);
- }
-
- abstract void genPackageDocumentation(Identifier var1, ClassDeclaration[] var2, ClassDeclaration[] var3, ClassDeclaration[] var4, ClassDeclaration[] var5);
-
- abstract void genClassDocumentation(ClassDefinition var1, ClassDeclaration var2, ClassDeclaration var3);
-
- abstract String classString(ClassDeclaration var1);
-
- static void sort(FieldDefinition[] var0) {
- xsort(var0);
- }
-
- static void sort(String[] var0) {
- boolean var1;
- do {
- var1 = true;
-
- for(int var2 = var0.length - 1; var2 > 0; --var2) {
- if (var0[var2 - 1].compareTo(var0[var2]) > 0) {
- String var3 = var0[var2];
- var0[var2] = var0[var2 - 1];
- var0[var2 - 1] = var3;
- var1 = false;
- }
- }
- } while(!var1);
-
- }
-
- static String sortKey(FieldDefinition var0) {
- ClassDefinition var1 = var0.getClassDefinition();
- String var2 = (var1.getName().getName() + "." + var1.getName().getQualifier()).toLowerCase();
- if (var0.isVariable()) {
- return var0.getName().toString().toLowerCase() + " " + var2;
- } else {
- Identifier var3 = var0.isConstructor() ? var0.getClassDeclaration().getName().getName() : var0.getName();
- Type var4 = var0.getType();
- return var4.typeString(var3.toString(), true, false).toLowerCase() + var2;
- }
- }
-
- static void xsort(FieldDefinition[] var0, String[] var1) {
- xsort(var0, var1, 0, var0.length - 1);
- }
-
- static void xsort(FieldDefinition[] var0) {
- String[] var1 = new String[var0.length];
- int var2 = var0.length;
-
- while(true) {
- --var2;
- if (var2 < 0) {
- xsort(var0, var1, 0, var0.length - 1);
- return;
- }
-
- var1[var2] = sortKey(var0[var2]);
- }
- }
-
- private static void xsort(FieldDefinition[] var0, String[] var1, int var2, int var3) {
- if (var2 < var3) {
- String var4 = var1[var2];
- int var5 = var2;
- int var6 = var3;
-
- while(var5 < var6) {
- while(var5 <= var3 && var1[var5].compareTo(var4) <= 0) {
- ++var5;
- }
-
- while(var6 >= var2 && var1[var6].compareTo(var4) > 0) {
- --var6;
- }
-
- if (var5 < var6) {
- FieldDefinition var7 = var0[var5];
- String var8 = var1[var5];
- var0[var5] = var0[var6];
- var0[var6] = var7;
- var1[var5] = var1[var6];
- var1[var6] = var8;
- }
- }
-
- FieldDefinition var10 = var0[var2];
- String var9 = var1[var2];
- var0[var2] = var0[var6];
- var0[var6] = var10;
- var1[var2] = var1[var6];
- var1[var6] = var9;
- xsort(var0, var1, var2, var6 - 1);
- xsort(var0, var1, var6 + 1, var3);
- }
- }
-
- Hashtable createClassTree() {
- Hashtable var1 = new Hashtable();
- Enumeration var2 = this.env.getClasses();
-
- while(var2.hasMoreElements()) {
- ClassDeclaration var3 = (ClassDeclaration)var2.nextElement();
-
- try {
- if (shouldDocument(var3.getClassDefinition(this.env))) {
- this.genClassTree(var3, var1);
- }
- } catch (ClassNotFound var7) {
- }
- }
-
- Enumeration var8 = var1.keys();
-
- while(var8.hasMoreElements()) {
- ClassDeclaration var4 = (ClassDeclaration)var8.nextElement();
- Vector var5 = (Vector)var1.get(var4);
- if (var5.size() > 0) {
- ClassDeclaration[] var6 = new ClassDeclaration[var5.size()];
- var5.copyInto(var6);
- sort(var6);
- var1.put(var4, var6);
- } else {
- var1.remove(var4);
- }
- }
-
- return var1;
- }
-
- private Vector genClassTree(ClassDeclaration var1, Hashtable var2) {
- Vector var3 = (Vector)var2.get(var1);
- if (var3 != null) {
- return var3;
- } else {
- var3 = new Vector();
- var2.put(var1, var3);
-
- try {
- ClassDeclaration var4 = var1.getClassDefinition(this.env).getSuperClass();
- if (var4 != null) {
- Vector var5 = this.genClassTree(var4, var2);
- var5.addElement(var1);
- }
- } catch (ClassNotFound var6) {
- }
-
- return var3;
- }
- }
-
- abstract void genFieldIndex();
-
- void genClassTree() {
- this.genClassTree(this.createClassTree(), this.env.getClassDeclaration(Type.tObject.getClassName()));
- }
-
- abstract void genClassTree(Hashtable var1, ClassDeclaration var2);
-
- void parseSeeString(String var1, ClassDeclaration var2, Vector var3) {
- var1 = var1.trim();
- int var6 = var1.indexOf(35);
- String var5;
- if (var6 >= 0) {
- var5 = var1.substring(var6 + 1);
- var1 = var1.substring(0, var6);
- } else {
- var5 = null;
- }
-
- ClassDeclaration var4;
- if (var1.length() > 0) {
- try {
- Identifier var7 = Identifier.lookup(var1);
- SourceClass var8 = (SourceClass)var2.getClassDefinition(this.env);
- Identifier var9 = var8.getImports().resolve(this.env, var7);
- var4 = this.env.getClassDeclaration(var9);
- } catch (ClassNotFound var11) {
- var4 = this.env.getClassDeclaration(Identifier.lookup(var1));
- }
- } else {
- var4 = var2;
- }
-
- if (var5 == null) {
- var3.addElement(var4);
- var3.addElement((Object)null);
- var3.addElement((Object)null);
- } else {
- var6 = var5.indexOf(40);
- String var14 = var6 >= 0 ? var5.substring(0, var6) : var5;
- Identifier var15 = Identifier.lookup(var14);
-
- try {
- FieldDefinition var16 = var4.getClassDefinition(this.env).findAnyMethod(this.env, var15);
- if (var16 == null) {
- System.out.println("@see warning: Can't find " + var14 + " in " + var4);
- } else if (var16.getClassDeclaration() != var4) {
- System.out.println("@see warning: Found " + var14 + " in parent" + var16.getClassDeclaration() + " but not " + var4);
- var4 = var16.getClassDeclaration();
- }
- } catch (ClassNotFound var10) {
- System.out.println("@see warning: Can't find class " + var4.getName());
- }
-
- var3.addElement(var4);
- var3.addElement(var14);
- var3.addElement(var5);
- }
- }
- }
-